package com.example.d10_homework.homework04;

import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;

/**
 * 生成双色球的工具类
 */
public class DoubleColorBallUtils {
    // 工具类应该私有化构造器
    private DoubleColorBallUtils() {

    }

    /**
     * 生成双色球号码
     *
     * @return 返回生成的双色球号码
     */
    public static String createDoubleColorBall() {
        // 创建一个随机数对象用于产生随机数
        Random r = new Random();
        // 创建一个Set集合存储红球号码,红球号码不能重复,且需要排序所有TreeSet集合正好全部符合
        Set<Integer> redBalls = new TreeSet<>();
        // 确保红球数量为6个,使用while循环直到满足条件
        while (redBalls.size() < 6) {
            // 生成1-33之间的随机数
            int redNum = r.nextInt(33) + 1;
            redBalls.add(redNum);
        }

        // 生成篮球号码
        int blueBallNum = r.nextInt(16) + 1;
        // 将红球和蓝球号码合并成一个列表
        List<Integer> balls = redBalls.stream().collect(Collectors.toList());
        balls.add(blueBallNum);

        // 返回生成的双色球号码字符串
        return balls.toString();
    }
}
